package com.moive.news.tqnewsapplication.utils;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;

/**
 * 取图片圆角矩形范围的图
 */
public class HeadImage {
	/**
	 * 取图片圆角矩形范围的图
	 * 
	 * @param x
	 *            矩形宽
	 * @param y
	 *            矩形高
	 * @param yax
	 *            设定界限的宽(图片压缩后的宽)
	 * @param yay
	 *            设定界限的高(图片压缩后的高)
	 * @param image
	 *            Bitmap图片
	 * @param yuanjx
	 *            圆形角x-radius
	 * @param yuanjy
	 *            圆形角y-radius
	 * @return 图片圆角矩形范围的图
	 */
	public Bitmap createFramedPhoto(int x, int y, int yax, int yay,
									Bitmap image, float yuanjx, float yuanjy) {
		// 根据源文件新建一个darwable对象
		@SuppressWarnings("deprecation")
		Drawable imageDrawable = new BitmapDrawable(image);

		// 新建一个新的输出图片
		Bitmap output = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888);
		Canvas canvas = new Canvas(output);

		// 新建一个矩形
		RectF outerRect = new RectF(0, 0, x, y);

		// 产生一个红色的圆角矩形
		Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
		paint.setColor(Color.RED);
		canvas.drawRoundRect(outerRect, yuanjx, yuanjy, paint);

		// 将源图片绘制到这个圆角矩形上
		paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
		imageDrawable.setBounds(0, 0, yax, yay);
		canvas.saveLayer(outerRect, paint, Canvas.ALL_SAVE_FLAG);
		imageDrawable.draw(canvas);
		canvas.restore();

		return output;
	}

}
